#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include<vector>
#include<algorithm>
#include<set>
using namespace std;
int main()
{

    int n, k;
    cin >> n >> k;
    int sum = 0;

    vector<int> nums;

    while (n--)
    {
        int x;
        cin >> x;
        if (x % 2 == 0)
            nums.push_back(x);
        else sum += x;
    }
    sort(nums.begin(), nums.end(), greater<int>());
    while (k != 0 && !nums.empty())
    {
        nums[0] /= 2;
        if (nums[0] % 2 == 0)
        {
            sort(nums.begin(), nums.end(), greater<int>());
        }
        else
        {
            sum += nums[0];
            swap(nums[0], nums[nums.size() - 1]);
            
            nums.pop_back();
            sort(nums.begin(), nums.end(), greater<int>());
        }
        k--;
    }
        for (auto& x : nums)
    {
        sum += x;
    }
    cout << sum;
    return 0;
}
//int main() {
//    int n, k;
//    cin >> n >> k;
//    int sum = 0;
//    
//    vector<int> nums;
//    
//    while (n--)
//    {
//        int x;
//        cin >> x;
//        if (x % 2 == 0)
//            nums.push_back(x);
//        else sum += x;
//    }
//    make_heap(nums.begin(), nums.end());
//    while (k != 0 && !nums.empty())
//    {
//        swap(nums[0], nums[nums.size() - 1]);
//        nums[nums.size()-1] /= 2;
//        if (nums[nums.size() - 1] % 2 == 1)
//        {
//            sum += nums[nums.size() - 1];
//            push_heap(nums.begin(), nums.end());
//            nums.pop_back();
//        }
//        else
//        {
//            push_heap(nums.begin(), nums.end());
//        }
//        k--;
//    }
//    for (auto& x : nums)
//    {
//        sum += x;
//    }
//    cout << sum;
//    return 0;
//
//}

//int main() {
//    vector<int> nums;
//    int n, x;
//    cin >> n >> x;
//
//    while (n--)
//    {
//        int num;
//        cin >> num;
//        nums.push_back(num);
//    }
//    int sum = 0;
//    int minleft = 0;
//    int minright = nums.size();
//    for (int left = 0, right = 0; right < nums.size(); right++)
//    {
//        sum += nums[right];
//        if (sum >= x)
//        {
//            if (minright - minleft > right - left)
//            {
//                minleft = left;
//                minright = right;
//            }
//        }
//        while (sum > x && left < right)
//        {
//            sum -= nums[left];
//            left++;
//            if (sum >= x)
//            {
//                if (minright - minleft > right - left)
//                {
//                    minleft = left;
//                    minright = right;
//                }
//            }
//        }
//    }
//    cout << minleft << " " << minright;
//}

//int main() {
//
//    string str;
//    getline(cin, str);
//    for (int i = 0; i < str.size(); i++)
//    {
//        if (i == 0 || str[i - 1] == ' ')
//        {
//            if (str[i] >= 'a' && str[i] <= 'z')
//            {
//                str[i] -= 32;
//            }
//            cout << str[i];
//        }
//    }
//}